#ifndef _DFT_SOLVERS_H_
#define _DFT_SOLVERS_H_
/**************************************************//*!
 *
 * \file    dft_solvers.h
 * \brief   All derived DFT Solvers class defination
 *
 * \author  Terence Wu
 * \date    Sep. 2009
 *
 ****************************************************/

#include "ifftgpu.h"

class CTSolver : public Solver
{
public:
    CTSolver();
    ~CTSolver();

    virtual Plan * make_plan(Problem * prob);
    virtual Plan * make_next_plan(Problem * prob);
    bool applicable(Problem * prob);

private:
    int n1;

};

struct CodeletInfo;
class DIRSolver : public Solver
{
public:
    DIRSolver();
    ~DIRSolver();

    virtual Plan * make_plan(Problem * prob);
    bool applicable(Problem * prob, CodeletInfo * &pcode);

private:
    static const CodeletInfo codeletTab[];

};

#endif //_DFT_SOLVERS_H_